package org.hxyjs.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class CheforderExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private Integer limit;

    private Integer offset;

    public CheforderExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setLimit(Integer limit) {
        this.limit = limit;
    }

    public Integer getLimit() {
        return limit;
    }

    public void setOffset(Integer offset) {
        this.offset = offset;
    }

    public Integer getOffset() {
        return offset;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        protected void addCriterionForJDBCTime(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Time(value.getTime()), property);
        }

        protected void addCriterionForJDBCTime(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Time> timeList = new ArrayList<java.sql.Time>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                timeList.add(new java.sql.Time(iter.next().getTime()));
            }
            addCriterion(condition, timeList, property);
        }

        protected void addCriterionForJDBCTime(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Time(value1.getTime()), new java.sql.Time(value2.getTime()), property);
        }

        public Criteria andCunoIsNull() {
            addCriterion("cuno is null");
            return (Criteria) this;
        }

        public Criteria andCunoIsNotNull() {
            addCriterion("cuno is not null");
            return (Criteria) this;
        }

        public Criteria andCunoEqualTo(String value) {
            addCriterion("cuno =", value, "cuno");
            return (Criteria) this;
        }

        public Criteria andCunoNotEqualTo(String value) {
            addCriterion("cuno <>", value, "cuno");
            return (Criteria) this;
        }

        public Criteria andCunoGreaterThan(String value) {
            addCriterion("cuno >", value, "cuno");
            return (Criteria) this;
        }

        public Criteria andCunoGreaterThanOrEqualTo(String value) {
            addCriterion("cuno >=", value, "cuno");
            return (Criteria) this;
        }

        public Criteria andCunoLessThan(String value) {
            addCriterion("cuno <", value, "cuno");
            return (Criteria) this;
        }

        public Criteria andCunoLessThanOrEqualTo(String value) {
            addCriterion("cuno <=", value, "cuno");
            return (Criteria) this;
        }

        public Criteria andCunoLike(String value) {
            addCriterion("cuno like", value, "cuno");
            return (Criteria) this;
        }

        public Criteria andCunoNotLike(String value) {
            addCriterion("cuno not like", value, "cuno");
            return (Criteria) this;
        }

        public Criteria andCunoIn(List<String> values) {
            addCriterion("cuno in", values, "cuno");
            return (Criteria) this;
        }

        public Criteria andCunoNotIn(List<String> values) {
            addCriterion("cuno not in", values, "cuno");
            return (Criteria) this;
        }

        public Criteria andCunoBetween(String value1, String value2) {
            addCriterion("cuno between", value1, value2, "cuno");
            return (Criteria) this;
        }

        public Criteria andCunoNotBetween(String value1, String value2) {
            addCriterion("cuno not between", value1, value2, "cuno");
            return (Criteria) this;
        }

        public Criteria andUnoIsNull() {
            addCriterion("uno is null");
            return (Criteria) this;
        }

        public Criteria andUnoIsNotNull() {
            addCriterion("uno is not null");
            return (Criteria) this;
        }

        public Criteria andUnoEqualTo(String value) {
            addCriterion("uno =", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoNotEqualTo(String value) {
            addCriterion("uno <>", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoGreaterThan(String value) {
            addCriterion("uno >", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoGreaterThanOrEqualTo(String value) {
            addCriterion("uno >=", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoLessThan(String value) {
            addCriterion("uno <", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoLessThanOrEqualTo(String value) {
            addCriterion("uno <=", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoLike(String value) {
            addCriterion("uno like", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoNotLike(String value) {
            addCriterion("uno not like", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoIn(List<String> values) {
            addCriterion("uno in", values, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoNotIn(List<String> values) {
            addCriterion("uno not in", values, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoBetween(String value1, String value2) {
            addCriterion("uno between", value1, value2, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoNotBetween(String value1, String value2) {
            addCriterion("uno not between", value1, value2, "uno");
            return (Criteria) this;
        }

        public Criteria andCnoIsNull() {
            addCriterion("cno is null");
            return (Criteria) this;
        }

        public Criteria andCnoIsNotNull() {
            addCriterion("cno is not null");
            return (Criteria) this;
        }

        public Criteria andCnoEqualTo(String value) {
            addCriterion("cno =", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoNotEqualTo(String value) {
            addCriterion("cno <>", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoGreaterThan(String value) {
            addCriterion("cno >", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoGreaterThanOrEqualTo(String value) {
            addCriterion("cno >=", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoLessThan(String value) {
            addCriterion("cno <", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoLessThanOrEqualTo(String value) {
            addCriterion("cno <=", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoLike(String value) {
            addCriterion("cno like", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoNotLike(String value) {
            addCriterion("cno not like", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoIn(List<String> values) {
            addCriterion("cno in", values, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoNotIn(List<String> values) {
            addCriterion("cno not in", values, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoBetween(String value1, String value2) {
            addCriterion("cno between", value1, value2, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoNotBetween(String value1, String value2) {
            addCriterion("cno not between", value1, value2, "cno");
            return (Criteria) this;
        }

        public Criteria andCubegintimeIsNull() {
            addCriterion("cubeginTime is null");
            return (Criteria) this;
        }

        public Criteria andCubegintimeIsNotNull() {
            addCriterion("cubeginTime is not null");
            return (Criteria) this;
        }

        public Criteria andCubegintimeEqualTo(Date value) {
            addCriterionForJDBCTime("cubeginTime =", value, "cubegintime");
            return (Criteria) this;
        }

        public Criteria andCubegintimeNotEqualTo(Date value) {
            addCriterionForJDBCTime("cubeginTime <>", value, "cubegintime");
            return (Criteria) this;
        }

        public Criteria andCubegintimeGreaterThan(Date value) {
            addCriterionForJDBCTime("cubeginTime >", value, "cubegintime");
            return (Criteria) this;
        }

        public Criteria andCubegintimeGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCTime("cubeginTime >=", value, "cubegintime");
            return (Criteria) this;
        }

        public Criteria andCubegintimeLessThan(Date value) {
            addCriterionForJDBCTime("cubeginTime <", value, "cubegintime");
            return (Criteria) this;
        }

        public Criteria andCubegintimeLessThanOrEqualTo(Date value) {
            addCriterionForJDBCTime("cubeginTime <=", value, "cubegintime");
            return (Criteria) this;
        }

        public Criteria andCubegintimeIn(List<Date> values) {
            addCriterionForJDBCTime("cubeginTime in", values, "cubegintime");
            return (Criteria) this;
        }

        public Criteria andCubegintimeNotIn(List<Date> values) {
            addCriterionForJDBCTime("cubeginTime not in", values, "cubegintime");
            return (Criteria) this;
        }

        public Criteria andCubegintimeBetween(Date value1, Date value2) {
            addCriterionForJDBCTime("cubeginTime between", value1, value2, "cubegintime");
            return (Criteria) this;
        }

        public Criteria andCubegintimeNotBetween(Date value1, Date value2) {
            addCriterionForJDBCTime("cubeginTime not between", value1, value2, "cubegintime");
            return (Criteria) this;
        }

        public Criteria andCupriceIsNull() {
            addCriterion("cuprice is null");
            return (Criteria) this;
        }

        public Criteria andCupriceIsNotNull() {
            addCriterion("cuprice is not null");
            return (Criteria) this;
        }

        public Criteria andCupriceEqualTo(String value) {
            addCriterion("cuprice =", value, "cuprice");
            return (Criteria) this;
        }

        public Criteria andCupriceNotEqualTo(String value) {
            addCriterion("cuprice <>", value, "cuprice");
            return (Criteria) this;
        }

        public Criteria andCupriceGreaterThan(String value) {
            addCriterion("cuprice >", value, "cuprice");
            return (Criteria) this;
        }

        public Criteria andCupriceGreaterThanOrEqualTo(String value) {
            addCriterion("cuprice >=", value, "cuprice");
            return (Criteria) this;
        }

        public Criteria andCupriceLessThan(String value) {
            addCriterion("cuprice <", value, "cuprice");
            return (Criteria) this;
        }

        public Criteria andCupriceLessThanOrEqualTo(String value) {
            addCriterion("cuprice <=", value, "cuprice");
            return (Criteria) this;
        }

        public Criteria andCupriceLike(String value) {
            addCriterion("cuprice like", value, "cuprice");
            return (Criteria) this;
        }

        public Criteria andCupriceNotLike(String value) {
            addCriterion("cuprice not like", value, "cuprice");
            return (Criteria) this;
        }

        public Criteria andCupriceIn(List<String> values) {
            addCriterion("cuprice in", values, "cuprice");
            return (Criteria) this;
        }

        public Criteria andCupriceNotIn(List<String> values) {
            addCriterion("cuprice not in", values, "cuprice");
            return (Criteria) this;
        }

        public Criteria andCupriceBetween(String value1, String value2) {
            addCriterion("cuprice between", value1, value2, "cuprice");
            return (Criteria) this;
        }

        public Criteria andCupriceNotBetween(String value1, String value2) {
            addCriterion("cuprice not between", value1, value2, "cuprice");
            return (Criteria) this;
        }

        public Criteria andCuendtimeIsNull() {
            addCriterion("cuendTime is null");
            return (Criteria) this;
        }

        public Criteria andCuendtimeIsNotNull() {
            addCriterion("cuendTime is not null");
            return (Criteria) this;
        }

        public Criteria andCuendtimeEqualTo(Date value) {
            addCriterionForJDBCTime("cuendTime =", value, "cuendtime");
            return (Criteria) this;
        }

        public Criteria andCuendtimeNotEqualTo(Date value) {
            addCriterionForJDBCTime("cuendTime <>", value, "cuendtime");
            return (Criteria) this;
        }

        public Criteria andCuendtimeGreaterThan(Date value) {
            addCriterionForJDBCTime("cuendTime >", value, "cuendtime");
            return (Criteria) this;
        }

        public Criteria andCuendtimeGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCTime("cuendTime >=", value, "cuendtime");
            return (Criteria) this;
        }

        public Criteria andCuendtimeLessThan(Date value) {
            addCriterionForJDBCTime("cuendTime <", value, "cuendtime");
            return (Criteria) this;
        }

        public Criteria andCuendtimeLessThanOrEqualTo(Date value) {
            addCriterionForJDBCTime("cuendTime <=", value, "cuendtime");
            return (Criteria) this;
        }

        public Criteria andCuendtimeIn(List<Date> values) {
            addCriterionForJDBCTime("cuendTime in", values, "cuendtime");
            return (Criteria) this;
        }

        public Criteria andCuendtimeNotIn(List<Date> values) {
            addCriterionForJDBCTime("cuendTime not in", values, "cuendtime");
            return (Criteria) this;
        }

        public Criteria andCuendtimeBetween(Date value1, Date value2) {
            addCriterionForJDBCTime("cuendTime between", value1, value2, "cuendtime");
            return (Criteria) this;
        }

        public Criteria andCuendtimeNotBetween(Date value1, Date value2) {
            addCriterionForJDBCTime("cuendTime not between", value1, value2, "cuendtime");
            return (Criteria) this;
        }

        public Criteria andCubegindateIsNull() {
            addCriterion("cubeginDate is null");
            return (Criteria) this;
        }

        public Criteria andCubegindateIsNotNull() {
            addCriterion("cubeginDate is not null");
            return (Criteria) this;
        }

        public Criteria andCubegindateEqualTo(Date value) {
            addCriterionForJDBCDate("cubeginDate =", value, "cubegindate");
            return (Criteria) this;
        }

        public Criteria andCubegindateNotEqualTo(Date value) {
            addCriterionForJDBCDate("cubeginDate <>", value, "cubegindate");
            return (Criteria) this;
        }

        public Criteria andCubegindateGreaterThan(Date value) {
            addCriterionForJDBCDate("cubeginDate >", value, "cubegindate");
            return (Criteria) this;
        }

        public Criteria andCubegindateGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("cubeginDate >=", value, "cubegindate");
            return (Criteria) this;
        }

        public Criteria andCubegindateLessThan(Date value) {
            addCriterionForJDBCDate("cubeginDate <", value, "cubegindate");
            return (Criteria) this;
        }

        public Criteria andCubegindateLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("cubeginDate <=", value, "cubegindate");
            return (Criteria) this;
        }

        public Criteria andCubegindateIn(List<Date> values) {
            addCriterionForJDBCDate("cubeginDate in", values, "cubegindate");
            return (Criteria) this;
        }

        public Criteria andCubegindateNotIn(List<Date> values) {
            addCriterionForJDBCDate("cubeginDate not in", values, "cubegindate");
            return (Criteria) this;
        }

        public Criteria andCubegindateBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("cubeginDate between", value1, value2, "cubegindate");
            return (Criteria) this;
        }

        public Criteria andCubegindateNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("cubeginDate not between", value1, value2, "cubegindate");
            return (Criteria) this;
        }

        public Criteria andCuenddateIsNull() {
            addCriterion("cuendDate is null");
            return (Criteria) this;
        }

        public Criteria andCuenddateIsNotNull() {
            addCriterion("cuendDate is not null");
            return (Criteria) this;
        }

        public Criteria andCuenddateEqualTo(Date value) {
            addCriterionForJDBCDate("cuendDate =", value, "cuenddate");
            return (Criteria) this;
        }

        public Criteria andCuenddateNotEqualTo(Date value) {
            addCriterionForJDBCDate("cuendDate <>", value, "cuenddate");
            return (Criteria) this;
        }

        public Criteria andCuenddateGreaterThan(Date value) {
            addCriterionForJDBCDate("cuendDate >", value, "cuenddate");
            return (Criteria) this;
        }

        public Criteria andCuenddateGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("cuendDate >=", value, "cuenddate");
            return (Criteria) this;
        }

        public Criteria andCuenddateLessThan(Date value) {
            addCriterionForJDBCDate("cuendDate <", value, "cuenddate");
            return (Criteria) this;
        }

        public Criteria andCuenddateLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("cuendDate <=", value, "cuenddate");
            return (Criteria) this;
        }

        public Criteria andCuenddateIn(List<Date> values) {
            addCriterionForJDBCDate("cuendDate in", values, "cuenddate");
            return (Criteria) this;
        }

        public Criteria andCuenddateNotIn(List<Date> values) {
            addCriterionForJDBCDate("cuendDate not in", values, "cuenddate");
            return (Criteria) this;
        }

        public Criteria andCuenddateBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("cuendDate between", value1, value2, "cuenddate");
            return (Criteria) this;
        }

        public Criteria andCuenddateNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("cuendDate not between", value1, value2, "cuenddate");
            return (Criteria) this;
        }

        public Criteria andCustateIsNull() {
            addCriterion("custate is null");
            return (Criteria) this;
        }

        public Criteria andCustateIsNotNull() {
            addCriterion("custate is not null");
            return (Criteria) this;
        }

        public Criteria andCustateEqualTo(String value) {
            addCriterion("custate =", value, "custate");
            return (Criteria) this;
        }

        public Criteria andCustateNotEqualTo(String value) {
            addCriterion("custate <>", value, "custate");
            return (Criteria) this;
        }

        public Criteria andCustateGreaterThan(String value) {
            addCriterion("custate >", value, "custate");
            return (Criteria) this;
        }

        public Criteria andCustateGreaterThanOrEqualTo(String value) {
            addCriterion("custate >=", value, "custate");
            return (Criteria) this;
        }

        public Criteria andCustateLessThan(String value) {
            addCriterion("custate <", value, "custate");
            return (Criteria) this;
        }

        public Criteria andCustateLessThanOrEqualTo(String value) {
            addCriterion("custate <=", value, "custate");
            return (Criteria) this;
        }

        public Criteria andCustateLike(String value) {
            addCriterion("custate like", value, "custate");
            return (Criteria) this;
        }

        public Criteria andCustateNotLike(String value) {
            addCriterion("custate not like", value, "custate");
            return (Criteria) this;
        }

        public Criteria andCustateIn(List<String> values) {
            addCriterion("custate in", values, "custate");
            return (Criteria) this;
        }

        public Criteria andCustateNotIn(List<String> values) {
            addCriterion("custate not in", values, "custate");
            return (Criteria) this;
        }

        public Criteria andCustateBetween(String value1, String value2) {
            addCriterion("custate between", value1, value2, "custate");
            return (Criteria) this;
        }

        public Criteria andCustateNotBetween(String value1, String value2) {
            addCriterion("custate not between", value1, value2, "custate");
            return (Criteria) this;
        }
    }

    /**
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}